package com.ah.service.Impl;

import com.ah.service.IPaymentService;
import org.apache.dubbo.config.annotation.DubboService;
/**
 * @DubboService 注解用来标记一个类或者接口作为Dubbo的服务提供者，并将发布为Dubbo服务
 * 1，标记服务提供者，类上或者接口上
 * 2，自动暴露服务：在引用启动的时候dubbo自动处理服务发布过程（协议选择，端口绑定，注册中心注册等）
 * 3，透明的远程调用：调用者无序关心远程调用细节
 * 4，提供配置选项（超时选项，最大并发数，负载均衡）
 * **/

/**
 * @DubboService
 * 常用属性
 * timeout 配置服务访问超时
 * version 服务版本
 *loadbalance 配置负载均衡策略
 * 1. RandomLoadBalance：随机负载均衡，随机的选择一个，默认负载均衡。
 * 2. RoundRobinLoadBalance：轮询负载均衡。
 * 3. LeastActiveLoadBalance：最少活跃调用数，相同活跃数的随机。
 * 4. ConsistentHashLoadBalance：一致性哈希负载均衡，相同参数的请求总是落在同一台机器上。
 * **/
@DubboService(timeout = 2000,loadbalance = "roundrobin")
public class PaymentServiceImpl implements IPaymentService {
    @Override
    public String payment(Integer id){
        return "payment success B";
    }
}
